草庐IT

Swift 继承

全部标签

c# - 继承一个接口(interface),实现部分方法,让派生类实现其余部分

定义以下C#接口(interface):publicinterfaceIShape{intNumberOfLineSegments{get;}intArea{get;}}接下来,我要定义几个矩形类:梯形、正方形等。所有这些类的Area()属性都不同,但NumberOfLineSegments()总是返回4。因此,我想要一个名为Rectangle(或IRectangle)的“临时”类或接口(interface),它看起来像:publicRectangle:IShape{publicintNumberOfLineSegments{get{return4;}}}我希望Rectangle仅实现

c# - 是否有可能在代码中丢失过度继承?

我目前正在开发一个由其他人完成的asp.net站点,它的功能复杂得可笑……嗯,我是这么认为的!几乎每个类都继承自另一个类,然后是另一个类,然后是另一个类,依此类推......你必须平均达到8/10级才能获得基类,有时甚至更多!这些类内部还有其他类,它们遵循与Uber继承相同的模式。这让我多次迷失在代码中,结果天知道在visualstudio上打开了多少个标签页。这是好的/正常的做法还是不好的做法?我觉得这是一种不好的做法,因为过度使用继承导致代码变得不可扩展,如此简单的事情变得过于复杂......但我可能是错的:)谢谢! 最佳答案

c# - 如何获取基类的所有继承类?

这个问题在这里已经有了答案:HowtofindallthetypesinanAssemblythatInheritfromaSpecificTypeC#(4个答案)Getallderivedtypesofatype(8个答案)关闭9年前。classFoo{}classFoo1:Foo{}classFoo2:Foo{}我怎样才能获得所有使用Foo作为基类的类?继承的类在同一个程序集中不是必需的。

c# - 只查找非继承接口(interface)?

我试图通过反射对类的接口(interface)执行查询,但是方法Type.GetInterfaces()也返回所有继承的接口(interface)。等等publicclassTest:ITest{}publicinterfaceITest:ITesting{}代码typeof(Test).GetInterfaces();将返回一个包含ITest和ITesting的Type[],因为我只想要ITest,是否有另一种方法允许您指定继承?谢谢,亚历克斯。编辑:从下面的答案中我收集到了这一点,Typet;t.GetInterfaces().Where(i=>!t.GetInterfaces()

c# - 抽象类和接口(interface)的多重继承

我用C#.NET写了下面的代码publicinterfaceIWork{voidfunc();}publicabstractclassWorkClass{publicvoidfunc(){Console.WriteLine("CallingAbstractClassFunction");}}publicclassMyClass:WorkClass,IWork{}编译时,我没有收到任何错误。编译器没有强制我实现方法“func();”在派生自接口(interface)“IWork”的“MyClass”中。之后,我可以优雅地创建类“MyClass”的实例并调用函数“func()”。为什么编译

c# - .NET XML 序列化和继承

我有这样的结构:publicinterfaceA{publicvoidmethod();}publicclassB:A{}publicclassC:A{}Listlist;List包含类型B和C的对象,它们也有一些我想保留的字段,我现在可以序列化它,反序列化回来并获得正确的对象实例吗?最好是XML编辑:有什么简单的方法可以序列化这个包含接口(interface)的列表,然后反序列化回B和C实例吗? 最佳答案 假设您正在使用内置的.netXML序列化,您应该查看以下属性:System.Xml.Serialization.XmlIncl

c# - DataGridView 锁定在继承的 UserControl 上

我有一个带有一些预定义控件(groupbox、button、datagridview)的UserControl,这些控件被标记为protected,组件变量也被标记为protected。然后我想从这个基本UserControl继承到另一个UserControl,但是DataGridView始终锁定在设计器中。我怀疑它可能与实现ISupportInitilize的DataGridView有关。publicclassBaseGridDetail:UserControl定义了DataGridView控件(等)。publicclassInheritedDetail:BaseGridDetail

c# - 我们可以继承单例类吗?

我们可以继承单例类吗? 最佳答案 这取决于实现。单例通常具有私有(private)构造函数并且可能标记为sealed,如果是这样则不能。如果它至少受到保护,你可以。如果你只是从单例类继承,结果将不是单例,所以你应该遵循这个模式,让它也是单例。 关于c#-我们可以继承单例类吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3564758/

C# - 如何使方法仅对继承方法基类的类可见

我有一个标记为抽象的基类。是否可以使该基类中的方法仅对继承该基类的其他类可见?假设我有Class1,它是我的基类,被标记为抽象类。Class2继承了Class1并且可以调用它的所有公共(public)方法。我希望Class3创建Class2的实例,但不能调用Class1的某些方法。我尝试将这些方法本身标记为抽象方法,但当Class2尝试使用它们时出现错误。错误是:“...无法声明正文,因为它被标记为抽象” 最佳答案 为什么不声明方法protected?publicabstractclassClass1{protectedabstra

C#:微软为什么不让 ReadOnlyCollection<T> 继承自 ReadOnlyCollectionBase?

简单的说,微软定义了一个ReadOnlyCollectionBase,但没有将其用作ReadOnlyCollection的基类当听起来很明显应该是这样的时候。我是不是漏掉了什么?我的意思是,是否有充分的理由不将此类作为基类? 最佳答案 可能是因为它不是通用的并且实现了ICollection而ReadOnlyCollection是通用的并实现了ICollection.注意ICollection不执行ICollection.在那topic:ICollectionseemslikeICollection,butit’sactuallyav